package nc.jv.Sort;

/**
 * @author Vadim Gidulyan
 *
 */
public class BogoDataGenerator implements DataGenerator
{
	/**
     * Генерирует входные данные для сортировки
     * 
     * <p>Лучший случай - массив отсортирован
     * 
     * @param length
     *                Длина генерируемого массива
     * 
     * @return Массив заданной длины {@code length}  
     */
	@SuppressWarnings("rawtypes")
	@Override
	public Comparable[] generateBestData(int length)
	{
		Comparable[] array = new Integer[length];
		for (int i = 0; i < length; i++)
            array[i] = i;
		return array;
	}

	/**
     * Генерирует входные данные для сортировки
     * 
     * <p>Среднестатистический случай - случайный набор данных
     * 
     * @param length
     *                Длина генерируемого массива
     * 
     * @return Массив заданной длины {@code length}  
     */
	@SuppressWarnings("rawtypes")
	@Override
	public Comparable[] generateNormalData(int length)
	{
		Comparable[] array = new Integer[length];
		for (int i = 0; i < length; i++)
            array[i] = (int) (Math.random()*100);
		return array;
	}

	/**
     * Генерирует входные данные для сортировки
     * 
     * <p>Худший случай - массив вообще не отсортирован
     * 
     * @param length
     *                Длина генерируемого массива
     * 
     * @return Массив заданной длины {@code length}  
     */
	@SuppressWarnings("rawtypes")
	@Override
	public Comparable[] generateWorstData(int length)
	{
		Comparable[] array = new Integer[length];
		for (int i = 0; i < length; i++)
            array[i] = length - i;
		return array;
	}

}
